package com.lekang.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

/**
 * 老人对象 elderly
 * 
 * @author ruoyi
 * @date 2025-10-14
 */
@Data
public class Elderly extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 老人姓名 */
    @Excel(name = "老人姓名")
    private String name;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCard;

    /** 性别 */
    @Excel(name = "性别")
    private String gender;

    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 年龄 */
    @Excel(name = "年龄")
    private Long age;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String contact;

    /** 家庭住址 */
    @Excel(name = "家庭住址")
    private String address;

    /** 民族(数据字典获取) */
    @Excel(name = "民族(数据字典获取)")
    private Long ethnicity;

    /** 政治面貌(数据字典获取) */
    @Excel(name = "政治面貌(数据字典获取)")
    private Long politicalStatus;

    /** 宗教信仰(数据字典获取) */
    @Excel(name = "宗教信仰(数据字典获取)")
    private Long religion;

    /** 婚姻情况(数据字典获取) */
    @Excel(name = "婚姻情况(数据字典获取)")
    private Long maritalStatus;

    /** 文化程度(数据字典获取) */
    @Excel(name = "文化程度(数据字典获取)")
    private Long education;

    /** 经济来源(数据字典获取) */
    @Excel(name = "经济来源(数据字典获取)")
    private Long incomeSource;

    /** 特长爱好(数据字典获取) */
    @Excel(name = "特长爱好(数据字典获取)")
    private Long hobbies;

    /** 医疗保障(数据字典获取) */
    @Excel(name = "医疗保障(数据字典获取)")
    private Long medicalInsurance;

    /** 医保卡号 */
    @Excel(name = "医保卡号")
    private String medicalCardNo;

    /** 一寸照片 */
    @Excel(name = "一寸照片")
    private String photo;

    /** 身份证人像面 */
    private String idCardFront;

    /** 身份证国徽面 */
    private String idCardBack;

    /** 逻辑删除 */
    private Long isDeleted;

    /** 床位外键编号 */
    @Excel(name = "床位外键编号")
    private Long bedId;


    /** 额外字段1 */
    private String extraField1;
    private Bed bed;

    /** 额外字段2 */
    private String extraField2;

    // ===================== 新增内存级关联字段（无数据库对应字段）=====================

    /** 关联：当前老人的所有请假记录（1对多） */
    private List<LeaveRequest> leaveRequestList;
    /** 关联：当前老人的所有入住记录（1对多） */
    private List<CheckInManagement> checkInManagementList;
    /** 关联：当前老人的所有家属（1对多） */
    private List<FamilyMember> familyMembers;
    // =============================================================================
    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setIdCard(String idCard) 
    {
        this.idCard = idCard;
    }

    public String getIdCard() 
    {
        return idCard;
    }

    public void setGender(String gender) 
    {
        this.gender = gender;
    }

    public String getGender() 
    {
        return gender;
    }

    public void setBirthDate(Date birthDate) 
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate() 
    {
        return birthDate;
    }

    public void setAge(Long age) 
    {
        this.age = age;
    }

    public Long getAge() 
    {
        return age;
    }

    public void setContact(String contact) 
    {
        this.contact = contact;
    }

    public String getContact() 
    {
        return contact;
    }

    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }

    public void setEthnicity(Long ethnicity) 
    {
        this.ethnicity = ethnicity;
    }

    public Long getEthnicity() 
    {
        return ethnicity;
    }

    public void setPoliticalStatus(Long politicalStatus) 
    {
        this.politicalStatus = politicalStatus;
    }

    public Long getPoliticalStatus() 
    {
        return politicalStatus;
    }

    public void setReligion(Long religion) 
    {
        this.religion = religion;
    }

    public Long getReligion() 
    {
        return religion;
    }

    public void setMaritalStatus(Long maritalStatus) 
    {
        this.maritalStatus = maritalStatus;
    }

    public Long getMaritalStatus() 
    {
        return maritalStatus;
    }

    public void setEducation(Long education) 
    {
        this.education = education;
    }

    public Long getEducation() 
    {
        return education;
    }

    public void setIncomeSource(Long incomeSource) 
    {
        this.incomeSource = incomeSource;
    }

    public Long getIncomeSource() 
    {
        return incomeSource;
    }

    public void setHobbies(Long hobbies) 
    {
        this.hobbies = hobbies;
    }

    public Long getHobbies() 
    {
        return hobbies;
    }

    public void setMedicalInsurance(Long medicalInsurance) 
    {
        this.medicalInsurance = medicalInsurance;
    }

    public Long getMedicalInsurance() 
    {
        return medicalInsurance;
    }

    public void setMedicalCardNo(String medicalCardNo) 
    {
        this.medicalCardNo = medicalCardNo;
    }

    public String getMedicalCardNo() 
    {
        return medicalCardNo;
    }

    public void setPhoto(String photo) 
    {
        this.photo = photo;
    }

    public String getPhoto() 
    {
        return photo;
    }

    public void setIdCardFront(String idCardFront) 
    {
        this.idCardFront = idCardFront;
    }

    public String getIdCardFront() 
    {
        return idCardFront;
    }

    public void setIdCardBack(String idCardBack) 
    {
        this.idCardBack = idCardBack;
    }

    public String getIdCardBack() 
    {
        return idCardBack;
    }

    public void setIsDeleted(Long isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Long getIsDeleted() 
    {
        return isDeleted;
    }

    public void setBedId(Long bedId) 
    {
        this.bedId = bedId;
    }

    public Long getBedId() 
    {
        return bedId;
    }

    public void setExtraField1(String extraField1) 
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1() 
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2) 
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2() 
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("name", getName())
            .append("idCard", getIdCard())
            .append("gender", getGender())
            .append("birthDate", getBirthDate())
            .append("age", getAge())
            .append("contact", getContact())
            .append("address", getAddress())
            .append("ethnicity", getEthnicity())
            .append("politicalStatus", getPoliticalStatus())
            .append("religion", getReligion())
            .append("maritalStatus", getMaritalStatus())
            .append("education", getEducation())
            .append("incomeSource", getIncomeSource())
            .append("hobbies", getHobbies())
            .append("medicalInsurance", getMedicalInsurance())
            .append("medicalCardNo", getMedicalCardNo())
            .append("photo", getPhoto())
            .append("idCardFront", getIdCardFront())
            .append("idCardBack", getIdCardBack())
            .append("isDeleted", getIsDeleted())
            .append("bedId", getBedId())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .toString();
    }
}
